import { createApp } from 'vue'
import { createPinia } from 'pinia'//引入pinia
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'//引入数据持久化
import "element-plus/theme-chalk/el-message.css"//引入plus框架的样式
import '@/router/combinePage'//引入动态显示路由最终文件
import App from './App.vue'//引入App.vue文件
import router from './router'//引入路由
import { i18n } from "@/i18n";//引入国际化
import store from '@/stores'//引入状态
import { useUsertore } from './stores/user'//引入使用状态的方法
import 'nprogress/nprogress.css';//引入加载进度条的样式

const pinia = createPinia();
const app = createApp(App)
pinia.use(piniaPluginPersistedstate)//使用状态持久化

app.use(router)//使用
app.use(i18n)
app.use(store)

app.directive("permissions", {//自定义组件方法directive，控制显示隐藏的permissions属性
    mounted(el, binding) {
        const store = useUsertore()
        let val = binding.value
        var permissionList = store.user.perms//作用防止空指针异常
        if (-1 === permissionList.indexOf(val)) {
            //没有权限
            el.remove()
        }
    }
})

app.mount('#app')//挂载
